LE
ORIGINI DEL SOFTWARE: OVVERO LE CAUSE CHE RENDONO NECESSARIA LA PROGRAMMAZIONE
Consideriamo la fabbrica X
la quale produce scarpe da uomo. Ed immaginiamo che nel giro di poco tempo un primo negozio
storna gli ordini, un'altro riduce la quantità di scarpe prenotate, un'altro ancora
rimanda indietro la merce alla fabbrica. Le vendite stanno crollando ed X rischia
il fallimento. Cosa si può fare?
Possiamo generalizzare l'esempio in questi termini. Il sistema X (fabbrica, ufficio commerciale, banca, istituto ecc.) non è mai isolato, opera invece all'interno dell'universo U il quale è il mercato piuttosto che l'habitat, il sistema politico o quello sociale o altro. Quattro principali elementi caratterizzano i rapporti tra X ed U:
Questa soluzione, ovvero il completamento di X mediante
il sistema informativo SI,
si ritrova dappertutto: nelle aziende e nella vita personale, nelle organizzazioni,
negli apparati e nei macchinari. Ne abbiamo già scritto nella
risposta
16.
Dopo millenni di sistemi
informativi manuali e parzialmente meccanizzati, oggi gli elaboratori
realizzano il trattamento completo dell'informazione (vedi risposte
4 e
13).
Dunque
Il sistema universo U si modifica in modo spesso imprevedibile dunque, ragionando a fil di logica, il computer SI non può essere completato in fabbrica. La costruzione comincia negli stabilimenti ma non può terminare lì perché gli ingegneri non gli possono assegnare i lavori che alla data di costruzione sono imprevedibili ed indefinibili. Ecco allora che essi preparano tutto ciò che è possibile in fabbrica e posticipano la messa a punto finale del computer in loco mediante la programmazione. Il programma software assegna all'ultimo momento il compito da eseguire. Le ragioni che dettano il software provengono dal sistema X servito dal SI ed influenzato da U. La variabilità del sistema universo spiega perché gli elaboratori sono necessariamente programmati e ci permette di andare più in là. Molti programmi infatti non sono direttamente rivolti alla sopravvivenza di X ma servono per scopi collaterali come la gestione della macchina, il collegamento di rete, le funzioni di servizio ecc. Essi sono alquanto stabili vedi ad esempio il sistema operativo, il borwser, i programmi di utilità, i programmi di controllo di rete. Tutti questi costituiscono il cosidetto software di base o software di sistema. Gli altri che direttamente servono alla sopravvivenza di X, ad esempio il programma di fatturazione, quello delle paghe e stipendi, formano il software applicativo il quale talora deve essere creato e/o aggiornato tamburo-ribattente mentre quello di base quasi mai subisce tali urgenze. In sostanza la pressione dinamica di U su X genera indirizzi tecnologici via via più veloci che rispondono su tre livelli ai cambiamenti imposti da U. L'hardware stabilisce le parti rigide e fisse della macchina, poi viene il software di base che ha una stabilità intermedia, infine il software applicativo risponde direttamente alle richieste di U.
I programmi che calcolano funzioni matematiche per definizione sono 'astratti' cioè avulsi dall'attualità pratica, e si trovano all'estrema sinistra del gruppo del software. Infatti gli algoritmi per calcolare il logaritmo o il teorema di Pitagora non cambieranno mai. La differenza macroscopica
che esiste tra
l'hardware ed il software è evidente anche ai non-addetti. La diversità
esistente tra
il software di base e quello applicativo, spesso chiamato gestionale,
purtroppo viene trascurata e tale ignoranza produce
nefande conseguenze. Infatti le due classi di programmi devono essere
affrontati con metodi e tecnologie assai diverse, con criteri opposti.
anno 2004 |